package com.gcu.drivingschool.domain.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.*;


/**
 * 修改学员实体
 * @author zzr
 * @create 2024-05-05-17:17
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Schema(description = "修改学员实体")
public class UpdateStudentDto{
    /**
     * 主键
     */
    @Schema(description = "学员id(非空且其他字段需一个非空)")
    @NotNull
    private Integer id;

    /**
     * 手机号(11位数字字符)
     */
    @Schema(description = "手机号(11位数字字符)")
    @Pattern(regexp = "^\\d{11}$",message = "11位数字字符")
    private String telephone;

    /**
     * 密码(最多60个字符)
     */
    @Schema(description = "密码(最多50个字符)")
    @Size(max = 50,message = "最多50个字符")
    private String password;

    /**
     * 姓名(最多20个字符)
     */
    @Schema(description = "姓名(最多20个字符)")
    @Size(max = 20,message = "最多20个字符")
    private String name;

    /**
     * 身份证号(18位,前17位数字,最后一位可以是数字或者大写字母"X"的字符)
     */
    @Schema(description = "身份证号(18位,前17位数字,最后一位可以是数字或者大写字母X)")
    @Pattern(regexp = "^\\d{17}[\\dXx]$",message = "18位,前17位数字,最后一位可以是数字或者大写字母X")
    private String idNumber;

    /**
     * 年龄(1~200之间数字)
     */
    @Schema(description = "年龄(1~200之间数字)")
    @Min(value = 1,message = "最小1")
    @Max(value = 200,message = "最大200")
    private Integer age;

    /**
     * 性别(最多1个字符)
     */
    @Schema(description = "性别(最多1个字符)")
    @Size(max = 1,message = "最多一个字符")
    private String sex;

    /**
     * 教练id
     */
    @Schema(description = "教练id")
    private Integer coachId;
}
